home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / slaeda.z / slaeda
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSLLLLAAAAEEEEDDDDAAAA((((3333FFFF))))                                                          SSSSLLLLAAAAEEEEDDDDAAAA((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SLAEDA - compute the Z vector corresponding to the merge step in the
  10.      CURLVLth step of the merge process with TLVLS steps for the CURPBMth
  11.      problem
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE SLAEDA( N, TLVLS, CURLVL, CURPBM, PRMPTR, PERM, GIVPTR,
  15.                         GIVCOL, GIVNUM, Q, QPTR, Z, ZTEMP, INFO )
  16.  
  17.          INTEGER        CURLVL, CURPBM, INFO, N, TLVLS
  18.  
  19.          INTEGER        GIVCOL( 2, * ), GIVPTR( * ), PERM( * ), PRMPTR( * ),
  20.                         QPTR( * )
  21.  
  22.          REAL           GIVNUM( 2, * ), Q( * ), Z( * ), ZTEMP( * )
  23.  
  24. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  25.      SLAEDA computes the Z vector corresponding to the merge step in the
  26.      CURLVLth step of the merge process with TLVLS steps for the CURPBMth
  27.      problem.
  28.  
  29.  
  30. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  31.      N      (input) INTEGER
  32.             The dimension of the symmetric tridiagonal matrix.  N >= 0.
  33.  
  34.      TLVLS  (input) INTEGER
  35.             The total number of merging levels in the overall divide and
  36.             conquer tree.
  37.  
  38.             CURLVL (input) INTEGER The current level in the overall merge
  39.             routine, 0 <= curlvl <= tlvls.
  40.  
  41.             CURPBM (input) INTEGER The current problem in the current level in
  42.             the overall merge routine (counting from upper left to lower
  43.             right).
  44.  
  45.             PRMPTR (input) INTEGER array, dimension (N lg N) Contains a list
  46.             of pointers which indicate where in PERM a level's permutation is
  47.             stored.  PRMPTR(i+1) - PRMPTR(i) indicates the size of the
  48.             permutation and incidentally the size of the full, non-deflated
  49.             problem.
  50.  
  51.      PERM   (input) INTEGER array, dimension (N lg N)
  52.             Contains the permutations (from deflation and sorting) to be
  53.             applied to each eigenblock.
  54.  
  55.             GIVPTR (input) INTEGER array, dimension (N lg N) Contains a list
  56.             of pointers which indicate where in GIVCOL a level's Givens
  57.             rotations are stored.  GIVPTR(i+1) - GIVPTR(i) indicates the
  58.             number of Givens rotations.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSLLLLAAAAEEEEDDDDAAAA((((3333FFFF))))                                                          SSSSLLLLAAAAEEEEDDDDAAAA((((3333FFFF))))
  71.  
  72.  
  73.  
  74.             GIVCOL (input) INTEGER array, dimension (2, N lg N) Each pair of
  75.             numbers indicates a pair of columns to take place in a Givens
  76.             rotation.
  77.  
  78.             GIVNUM (input) REAL array, dimension (2, N lg N) Each number
  79.             indicates the S value to be used in the corresponding Givens
  80.             rotation.
  81.  
  82.      Q      (input) REAL array, dimension (N**2)
  83.             Contains the square eigenblocks from previous levels, the starting
  84.             positions for blocks are given by QPTR.
  85.  
  86.      QPTR   (input) INTEGER array, dimension (N+2)
  87.             Contains a list of pointers which indicate where in Q an
  88.             eigenblock is stored.  SQRT( QPTR(i+1) - QPTR(i) ) indicates the
  89.             size of the block.
  90.  
  91.      Z      (output) REAL array, dimension (N)
  92.             On output this vector contains the updating vector (the last row
  93.             of the first sub-eigenvector matrix and the first row of the
  94.             second sub-eigenvector matrix).
  95.  
  96.      ZTEMP  (workspace) REAL array, dimension (N)
  97.  
  98.      INFO   (output) INTEGER
  99.             = 0:  successful exit.
  100.             < 0:  if INFO = -i, the i-th argument had an illegal value.
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.